(function($){
    $.fn.actions = function(settings) {
        
        var config = {};
        
        config.container = this;
        
        $.extend(config, settings);
        
        $('.action-root', config.container).change(function(){
        	$('select', config.container).not(this).hide();
        	$('.action-' + this.value, config.container).show();
        });
        
        $(config.container).submit(function(){
        	if (!$('input:checkbox:checked', config.container).length) {
        		return false;
        	}
        	if ($('.action-root :selected').attr('value') == '') {
        		return false;
        	}
        });
        
        $('table tbody > tr', config.container)
        .hover(
        	function() { $(this).addClass('over'); },
        	function() { $(this).removeClass('over'); }
        )
        .click(function(){
        	$(this).toggleClass('selected');
        	if ($(this).hasClass('selected')) {
        		$(':checkbox', this).attr('checked', 'checked');
        	} else {
        		$(':checkbox', this).removeAttr('checked');
        	}
        })
        
    }
})(jQuery)